#pragma once

#include <memory>
#include <functional>

class Buffer;
class TcpConnection;
class Timestamp;

/**
 * Callbacks.h 定义了一系列的回调函数类型，这些回调在TCP连接的不同阶段被触发，例如建立连接、接收消息、连接关闭等。
*/

using TcpConnectionPtr = std::shared_ptr<TcpConnection>;  
using ConnectionCallback = std::function<void (const TcpConnectionPtr&)>; // 连接建立或断开时调用
using CloseCallback = std::function<void (const TcpConnectionPtr&)>;  // 连接关闭时调用
using WriteCompleteCallback = std::function<void (const TcpConnectionPtr&)>; // 数据发送完成时调用
using MessageCallback = std::function<void (const TcpConnectionPtr&, Buffer*, Timestamp)>; // 接收到信息时调用
using HighWaterMarkCallback = std::function<void (const TcpConnectionPtr&, size_t)>; // 达到高水位标记时调用







